package io.intercom.api;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.node.ValueNode;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
class URIDeserializer extends StdDeserializer<URI> {
public URIDeserializer() {
super(URI.class);
}
@Override
public URI deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
final ObjectMapper mapper = (ObjectMapper) jp.getCodec();
final ValueNode vNode = mapper.readTree(jp);
URI uri = null;
try {
uri = new URI(vNode.asText());
} catch (URISyntaxException ignored) {
}
if (uri == null) {
try {
final URL url = new URL(vNode.asText());
uri = new URI(url.getProtocol(), url.getHost(), url.getPath(), url.getQuery(), url.getRef());
} catch (MalformedURLException ignored) {
} catch (URISyntaxException ignored) {
}
}
return uri;
}
}